{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "fab969ae",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Populating the interactive namespace from numpy and matplotlib\n"
     ]
    }
   ],
   "source": [
    "%pylab inline\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "import seaborn as sns\n",
    "\n",
    "sys.path.append('..')\n",
    "from DegScore import DegScore\n",
    "\n",
    "from tqdm import tqdm\n",
    "tqdm.pandas()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "91cfadb4",
   "metadata": {},
   "source": [
    "## Using DegScore class"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "a4017c46",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.17  0.217 0.511 0.641 0.714 0.49  0.347 0.15  0.643]\n",
      "3.8830000000000013\n",
      "11.430771365678682\n"
     ]
    }
   ],
   "source": [
    "mdl = DegScore('GGGUUUCCC', structure='(((...)))')\n",
    "print(mdl.degscore_by_position)\n",
    "print(mdl.degscore)\n",
    "print(mdl.est_half_life)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "21accdaa",
   "metadata": {},
   "source": [
    "Mimicking Pseudouridine (PSU): `mask_U=True` sets DegScore at U's to 0 to mimic stabilization from PSU."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "67f8237e",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.17  0.217 0.511 0.    0.    0.    0.347 0.15  0.643]\n",
      "SSSHHHSSS\n",
      "2.0380000000000007\n",
      "12.239219021551373\n"
     ]
    }
   ],
   "source": [
    "mdl = DegScore('GGGUUUCCC', structure='(((...)))', mask_U=True)\n",
    "print(mdl.degscore_by_position)\n",
    "print(mdl.loop_assignments)\n",
    "print(mdl.degscore)\n",
    "print(mdl.est_half_life)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c7e69f60",
   "metadata": {},
   "source": [
    "If only sequence is provided and Arnie is loaded, DegScore will use Arnie to calculate secondary structure and use that in its prediction."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "7657d494",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(((...)))\n",
      "[0.17  0.217 0.511 0.641 0.714 0.49  0.347 0.15  0.643]\n",
      "3.8830000000000013\n"
     ]
    }
   ],
   "source": [
    "mdl = DegScore('GGGUUUCCC')\n",
    "print(mdl.structure)\n",
    "print(mdl.degscore_by_position)\n",
    "print(mdl.degscore)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b7f284e6",
   "metadata": {},
   "source": [
    "## Visualize datasets from PERSIST-seq paper"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "117d9cc9",
   "metadata": {},
   "outputs": [],
   "source": [
    "df_ryos = pd.read_json('DEMO_Kaggle_RYOS_train.json')\n",
    "df_233x = pd.read_json('DEMO_233x.json')\n",
    "df_24x = pd.read_json('DEMO_24x.json')\n",
    "\n",
    "def get_degscore_calculations(row, mask_U=False):\n",
    "    mdl = DegScore(row['sequence'], mask_U = mask_U, start_ind=row['start_pos'], end_ind=row['end_pos'])\n",
    "    return mdl.degscore, mdl.est_k_deg, mdl.est_half_life\n",
    "\n",
    "df_ryos[['degscore', 'est_k_deg', 'est_half_life']] = df_ryos.apply(lambda row: get_degscore_calculations(row), axis=1, result_type='expand')\n",
    "df_233x[['degscore', 'est_k_deg', 'est_half_life']] = df_233x.apply(lambda row: get_degscore_calculations(row), axis=1, result_type='expand')\n",
    "df_24x[['degscore', 'est_k_deg', 'est_half_life']] = df_24x.apply(lambda row: get_degscore_calculations(row, mask_U=True), axis=1, result_type='expand')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "78251060",
   "metadata": {},
   "source": [
    "To calibrate the DegScore model to measured degradation rates on full-length mRNAs, we performed a linear fit between predicted DegScore values for 233 mRNAs of varying length, as well as the \"Roll-Your-Own Structure\" dataset (the filtered training dataset used on Kaggle). The below plot shows the resulting fit of the degradation rate, and the corresponding half-life.\n",
    "\n",
    "Specifically, `est_k_deg` is calculated as \n",
    "\n",
    "```\n",
    "est_k_deg = m * degscore + b\n",
    "\n",
    "m = 0.002170959651184987\n",
    "b = 0.05220886935630193\n",
    "```\n",
    "\n",
    "And `est_half_life` is calculated as\n",
    "\n",
    "```\n",
    "est_half_life = ln(2) / est_k_deg.\n",
    "```\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "59a1ba96",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "figure(figsize=(10,4))\n",
    "\n",
    "subplot(1,2,1)\n",
    "title('Degradation rate')\n",
    "sns.scatterplot(x='k_deg_per_hour', y='est_k_deg', data=df_ryos, color='purple', label='RYOS')\n",
    "sns.scatterplot(x='k_deg_per_hour', y='est_k_deg', data=df_233x, hue='Expt type')\n",
    "sns.scatterplot(x='k_deg per hour', y='est_k_deg', data=df_24x, color='k', linewidth=0, label='24x, PSU, with mask')\n",
    "\n",
    "plot([0,1],[0,1],color='k',linestyle=':')\n",
    "legend([],frameon=False)\n",
    "\n",
    "subplot(1,2,2)\n",
    "title('Half life')\n",
    "sns.scatterplot(x='half_life', y='est_half_life', data=df_ryos, color='purple', label='RYOS')\n",
    "sns.scatterplot(x='half_life', y='est_half_life', data=df_233x, hue='Expt type')\n",
    "sns.scatterplot(x='half_life', y='est_half_life', data=df_24x, color='k', label='24x, PSU, with mask')\n",
    "plot([0.6,30],[0.6,30],color='k',linestyle=':')\n",
    "\n",
    "semilogx()\n",
    "semilogy()\n",
    "legend(bbox_to_anchor=(1,1),frameon=False)\n",
    "\n",
    "tight_layout()\n",
    "\n",
    "savefig('example_datasets_degscore_predictions.pdf',bbox_inches='tight')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7da5742b",
   "metadata": {},
   "source": [
    "## EternaScript unit tests"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "id": "a1210ab4",
   "metadata": {},
   "outputs": [],
   "source": [
    "# write a random set of short RNAs\n",
    "\n",
    "with open('rand_seqs.csv','w') as f:\n",
    "    f.write('sequence\\n')\n",
    "    for _ in range(20):\n",
    "        f.write(\"%s\\n\" % ''.join(np.random.choice(list('ACGU'),size=100)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "id": "8bba110f",
   "metadata": {},
   "outputs": [],
   "source": [
    "# write values for not-masked-U\n",
    "\n",
    "rand_seqs = pd.read_csv('rand_seqs.csv',delimiter=',')\n",
    "\n",
    "def get_degscore_calculations(row, mask_U=False):\n",
    "    mdl = DegScore(row['sequence'], mask_U = mask_U)\n",
    "    return mdl.degscore, mdl.structure, mdl.loop_assignments, mdl.degscore_by_position, mdl.est_k_deg, mdl.est_half_life\n",
    "\n",
    "rand_seqs[['degscore','structure','loop_assignments','degscore_by_position','est_k_deg','est_half_life']]\\\n",
    "= rand_seqs.apply(lambda row: get_degscore_calculations(row), axis=1, result_type='expand')\n",
    "\n",
    "rand_seqs.to_csv('Degscore_unit_tests.csv')\n",
    "\n",
    "\n",
    "# write unit tests using masked U\n",
    "\n",
    "rand_seqs = pd.read_csv('rand_seqs.csv',delimiter=',')\n",
    "\n",
    "rand_seqs[['degscore','structure','loop_assignments','degscore_by_position','est_k_deg','est_half_life']]\\\n",
    "= rand_seqs.apply(lambda row: get_degscore_calculations(row, mask_U=True), axis=1, result_type='expand')\n",
    "\n",
    "rand_seqs.to_csv('Degscore_unit_tests_mask_U.csv')"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
